package com.dd.cloud.user.service.classroom;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.cloud.user.entity.classroom.MediaClassify;
import com.dd.cloud.user.req.classroom.CreateMediaClassifyReq;
import com.dd.cloud.user.req.classroom.QueryMediaClassifyReq;
import com.dd.cloud.user.req.classroom.UpdateMediaClassifyReq;
import com.dd.cloud.user.res.classroom.MediaClassifyRes;

import java.util.List;

/**
 * <p>
 * 媒体类型表 服务类
 * </p>
 *
 * @author czg
 * @since 2022-10-08
 */
public interface IMediaClassifyService extends IService<MediaClassify> {

    /**
     * 获取视频类型列表
     * @return
     */
    List<MediaClassify> getMediaClassifyList();

    /**
     * 分页获取类型
     * @param req
     * @return
     */
    Page<MediaClassifyRes> getMediaClassifyPage(QueryMediaClassifyReq req);

    /**
     * 确定类型是否存在
     * @param classify 类型
     * @return
     */
    boolean checkClassifyExists(String classify);

    /**
     * 查询不存在的类型
     * @param classifyList 要查询的类型数组
     * @return
     */
    List<String> checkClassifyExists(List<String> classifyList);

    /**
     * 确定类型是否存在
     * @param id 类型id
     * @return
     */
    boolean checkClassifyExists(Integer id);


    /**
     * 添加类型
     * @param req
     */
    void addMediaClassify(CreateMediaClassifyReq req);

    /**
     * 修改类型
     * @param req
     */
    void updateMediaClassify(UpdateMediaClassifyReq req);

    /**
     * 修改类型状态
     * @param id
     */
    void updateMediaClassifyStatus(Integer id, Integer status);
}
